//
// Created by summer1988 on 2024/1/7.
//

#import <Foundation/Foundation.h>

#define WS(weakSelf) __weak __typeof(&*self) weakSelf = self

typedef void (^AWENetworkServiceHandler)(NSDictionary *__nullable result, NSError *error);

@interface DYCallAManager : NSObject
+ (instancetype)sharedInstance;
- (void)startWebServer;
@end


@interface AWENetworkService : NSObject
+ (id)postWithURLString:(NSString *)urlString params:(NSDictionary *)params needCommonParams:(BOOL)isNeed completion:(AWENetworkServiceHandler)bock;

+ (id)getWithURLString:(NSString *)urlString params:(NSDictionary *)params needCommonParams:(BOOL)isNeed completion:(AWENetworkServiceHandler)bock;

+ (id)requestWithURLString:(id)arg1 params:(id)arg2 method:(id)arg3 needCommonParams:(BOOL)arg4 header:(id)arg5 modelClass:(Class)arg6 targetAttributes:(id)arg7 requestSerializer:(Class)arg8 responseSerializer:(Class)arg9 responseBlock:(id)arg10 completionBlock:(id)arg11;

+ (id)getWithURLString:(id)arg2 params:(id)arg3 modelClass:(id)arg4 completion:(id)arg5;

+ (id)postWithURLString:(id)arg2 params:(id)arg3 modelClass:(id)arg4 completion:(id)arg5;
@end


@interface AppDelegate

- (BOOL)application:(id)arg1 didFinishLaunchingWithOptions:(id)arg2;

@end

typedef NS_ENUM(uint8_t, GPBDataType) {
    /** Field contains boolean value(s). */
    GPBDataTypeBool = 0,
    /** Field contains unsigned 4 byte value(s). */
    GPBDataTypeFixed32,
    /** Field contains signed 4 byte value(s). */
    GPBDataTypeSFixed32,
    /** Field contains float value(s). */
    GPBDataTypeFloat,
    /** Field contains unsigned 8 byte value(s). */
    GPBDataTypeFixed64,
    /** Field contains signed 8 byte value(s). */
    GPBDataTypeSFixed64,
    /** Field contains double value(s). */
    GPBDataTypeDouble,
    /**
     * Field contains variable length value(s). Inefficient for encoding negative
     * numbers – if your field is likely to have negative values, use
     * GPBDataTypeSInt32 instead.
     **/
    GPBDataTypeInt32,
    /**
     * Field contains variable length value(s). Inefficient for encoding negative
     * numbers – if your field is likely to have negative values, use
     * GPBDataTypeSInt64 instead.
     **/
    GPBDataTypeInt64,
    /** Field contains signed variable length integer value(s). */
    GPBDataTypeSInt32,
    /** Field contains signed variable length integer value(s). */
    GPBDataTypeSInt64,
    /** Field contains unsigned variable length integer value(s). */
    GPBDataTypeUInt32,
    /** Field contains unsigned variable length integer value(s). */
    GPBDataTypeUInt64,
    /** Field contains an arbitrary sequence of bytes. */
    GPBDataTypeBytes,
    /** Field contains UTF-8 encoded or 7-bit ASCII text. */
    GPBDataTypeString,
    /** Field contains message type(s). */
    GPBDataTypeMessage,
    /** Field contains message type(s). */
    GPBDataTypeGroup,
    /** Field contains enum value(s). */
    GPBDataTypeEnum,
};

@interface GPBFieldDescriptor : NSObject<NSCopying>
@property(nonatomic, readonly, copy) NSString *name;
@property(nonatomic, readonly) uint32_t number;
@property(nonatomic, readonly) GPBDataType dataType;
@property(nonatomic, readonly) BOOL hasDefaultValue;
@end

@interface GPBDescriptor : NSObject<NSCopying>
@property(nonatomic, readonly, copy) NSString *name;
@property(nonatomic, readonly, strong, nullable) NSArray<GPBFieldDescriptor *> *fields;
- (nullable GPBFieldDescriptor *)fieldWithNumber:(uint32_t)fieldNumber;

@end

@interface GPBMessage : NSObject <NSSecureCoding, NSCopying>
+ (GPBDescriptor *)descriptor;
- (GPBDescriptor *)descriptor;
@end

@interface TIMPBNRequest : GPBMessage
@end